/*
 * Copyright (c) 2014-2022 Stream.io Inc. All rights reserved.
 *
 * Licensed under the Stream License;
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    https://github.com/GetStream/stream-chat-android/blob/main/LICENSE
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.getstream.chat.android.models

import androidx.compose.runtime.Immutable

/**
 * Model holding data for a push message.
 *
 * @param messageId The id of the message.
 * @param channelId The id of the channel.
 * @param channelType The type of the channel.
 * @param getstream Custom 'Stream' data.
 * @param extraData Custom extra (not pre-reserved) data.
 * @param metadata Notification metadata.
 */
@Immutable
public data class PushMessage(
    val messageId: String,
    val channelId: String,
    val channelType: String,
    val getstream: Map<String, Any?>,
    val extraData: Map<String, Any?>,
    val metadata: Map<String, Any?>,
)
